﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

struct People
{
	char name[64];
	int age;
	//2.当定义一个变量，编译器必须要知道分配多少内存；
	//struct People p;
};

//5.虽然这个funVoid()函数，可以没有返回值接收类型，也没有参数，但还是能运行。c语言允许这样的语法，尽量少用！
funVoid()
{
	return 10;
}
void testVoid()
{
	//1.void不能直接定义变量，因为编译器不知道分配多少内存给变量；
	//void a;
	//struct People p;

	printf("3.调用fun函数，得到结果ret=%d\n", funVoid());//ret=10
	printf("4.调用fun函数,传两个参数，得到结果ret=%d\n", funVoid(100, 200));//ret=10

	//6.void在函数中，对函数返回的限定，对函数参数的限定；

	//7.void* 无类型指针；也叫万能指针；
	void* p = NULL;

	int* pInt = NULL;
	char* pChar = (char*)pInt;
	//8.void* 是所有类型指针的祖宗，任何类型的指针都可以不经过强转，直接转换成void*类型；
	void* pVoid = pInt;

	//9.void*主要用于数据结构的封装；
}

//main178：void的用法
int main178()
{
	testVoid();

	system("pause");
	return EXIT_SUCCESS;
}